'''
啤酒2元一瓶，4个啤酒瓶盖子可以免费换1瓶啤酒，
2个空瓶子可以免费换一瓶啤酒，现在有10元钱，
不允许再有别的规则，总共可以喝多少瓶啤酒
'''
'''
思路：
先兑换能换到的最多的方法，然后换不了的时候再换另外一个方法兑换就可以了。
'''
beerSum = 5  # 啤酒总数 10元换过了
beerNow = 0  # 新换的啤酒
emptyBottle = 5  # 空瓶子
bottleCap = 5  # 瓶盖
for i in range(6):
    # 更新空瓶子数量
    emptyBottle += beerNow
    # 更新瓶盖数量
    bottleCap += beerNow
    beerSum += beerNow  # 更新啤酒总数
    # 新换的啤酒要换完，所以要刷新值
    beerNow = 0
    # 先用空瓶子换啤酒
    if emptyBottle % 2 == 0:  # 啤酒数是偶数
        # 瓶子换完之后数量要减去
        # emptyBottle /= 2 换到的啤酒数
        beerNow += emptyBottle / 2  # 更新啤酒数 增加啤酒数量
        # beerSum += beerNow # 更新啤酒总数
        # beerNow = 0 # 更新空瓶子换到的啤酒数
        emptyBottle = 0  # 偶数情况下可以换完，所以要刷新为0.
    else:
        emptyBottle -= 1  # 数字变为偶数方便计算
        emptyBottle = emptyBottle / 2  # 换到的啤酒数
        beerNow += emptyBottle  # 更新啤酒数 增加啤酒数量
        # beerSum += beerNow # 更新啤酒总数
        # beerNow = 0  # 更新空瓶子换到的啤酒数
        emptyBottle = 1  # 奇数情况下可以换不完，所以要刷新为1.
        # 再用瓶盖换啤酒 !!! 这一段要注意，不能要到else里面，这一段是无论如何要被执行的。
        # bottleCap /=4 换到的啤酒数
    if bottleCap % 4 == 0:
        beerNow += bottleCap / 4  # 更新啤酒数 增加啤酒数量
        beerNow = beerNow // 1  # 这里需要不要后面的小数
        # beerSum += beerNow # 更新啤酒总数
        # beerNow = 0  # 更新瓶盖换到的啤酒数
        # 剩余的瓶盖数量
        bottleCap = 0
    else:
        beerNow += bottleCap / 4  # 更新啤酒数 增加啤酒数量
        beerNow = beerNow // 1  # 这里需要不要后面的小数
        # 剩余的瓶盖数量 这里有问题，4个换完之后就没有了，但是我这里的余数却是1，这个就不太行。 -- 用if解决，能换完就是剩下0个，换不完就要余数
        bottleCap %= 4

    bottleCap = bottleCap // 1  # 去除小数

print("啤酒数量最多为：" + str(beerSum))
